package 关键字;


import java.util.ArrayList;
import java.util.List;

/**
 * @author yanzhenming
 * @date 2023/3/13  11:59
 */
public class FinalTest {

    public static void main(String[] args) {
        /**
         * final修饰的变量不能修改
         */
        final int a = 1;
        // a = 2;  报错


        /**
         * String存放于常量池
         * 下面两行代码在常量池中有三个对象，"1"，"2"，"12"
         * String的操作都是重新创建一个对象
         * 线程安全是因为String是final类型的
         */
        String s = new String("1");
        s = s + "2";

        /**
         * final修饰的list地址不变，但是可以对地址下的内容进行修改
         */
        final List<Integer> list = new ArrayList<>();
        list.add(1);
        // list = new ArrayList<>(); // 报错，因为final修饰的
        System.out.println(list); // 输出1

    }
}
